home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1996 September
/
CHIP Eylül 1996.iso
/
utils
/
povray
/
povsrc.lzh
/
machine
/
ibmpc
/
tiga
/
tigadefs.h
< prev
Wrap
Text File
|
1994-02-06
|
13KB
|
252 lines
/*-----------------------------------------------------------------------*/
/* TIGA */
/* Copyright (c) 1988,89 Texas Instruments Inc. */
/*-----------------------------------------------------------------------*/
/* TIGA - Header file */
/*-----------------------------------------------------------------------*/
/* */
/* file typedefs.h */
/* */
/* description This file contains type definitions used in */
/* the Applications Interface. */
/* This file should be included in any Microsoft-C */
/* program accessing data of these types. */
/* */
/*-----------------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/
/* Define integral data types */
/*--------------------------------------------------------------------------*/
typedef unsigned char uchar;
typedef unsigned short ushort;
typedef unsigned long ulong;
typedef unsigned long PTR;
typedef uchar far *HPTR;
/*--------------------------------------------------------------------------*/
/* CURSOR structure definition */
/* */
/* This structure contains cursor description information. */
/*--------------------------------------------------------------------------*/
typedef struct
{
short hot_x; /* offset from top... */
short hot_y; /* ...left-hand corner */
ushort width; /* array width */
ushort height; /* array height */
ushort pitch;
ulong color; /* color of cursor */
ushort mask_rop; /* cursor mask rop */
ushort shape_rop; /* cursor shape rop */
PTR data; /* pointer to cursor data in GSP memory */
} CURSOR;
/*--------------------------------------------------------------------------*/
/* PATTERN structure definition */
/* */
/* This structure contains pattern description information. */
/*--------------------------------------------------------------------------*/
typedef struct
{
ushort width; /* width of pattern */
ushort height; /* height of pattern */
ushort depth; /* depth (bits/pixel) */
PTR data; /* address of pattern in GSP memory */
} PATTERN;
/*--------------------------------------------------------------------------*/
/* PALET structure definition */
/* */
/* This structure contains the rgb and intensity components for a */
/* palette entry. */
/*--------------------------------------------------------------------------*/
typedef struct
{
uchar r;
uchar g;
uchar b;
uchar i;
} PALET;
/*--------------------------------------------------------------------------*/
/* MONITORINFO structure definition */
/* */
/* This structure contains video timing parameters. */
/*--------------------------------------------------------------------------*/
typedef struct
{
ushort hesync;
ushort heblnk;
ushort hsblnk;
ushort htotal;
ushort vesync;
ushort veblnk;
ushort vsblnk;
ushort vtotal;
ushort dpyctl;
ushort screen_delay;
ushort flags;
} MONITORINFO;
/*--------------------------------------------------------------------------*/
/* OFFSCREEN structure definitions */
/* */
/* These structures contain definitions of offscreen work areas */
/*--------------------------------------------------------------------------*/
typedef struct
{
PTR addr; /* address in gsp space of an offscreen work area */
ushort xext; /* x extension in the current screen pixel size */
ushort yext; /* y extension using default screen pitch */
} OFFSCREEN_AREA;
/*--------------------------------------------------------------------------*/
/* PAGE structure definitions */
/* */
/* These structures contain definitions used to implement multiple */
/* display pages. The information in these structures is used to */
/* display a given page. */
/*--------------------------------------------------------------------------*/
typedef struct
{
PTR BaseAddr; /* Base address of start of page */
ushort DpyStart; /* Value loaded in Display Start i/o register */
short DummyPad; /* 16 bits to pad structure to power of 2 size */
} PAGE;
/*--------------------------------------------------------------------------*/
/* MODEINFO structure definition */
/* */
/* This structure contains information pertaining to the current mode */
/* of operation. */
/*--------------------------------------------------------------------------*/
typedef struct
{
ulong disp_pitch; /* display pitch y::x */
ushort disp_vres; /* vertical resolution (pixels) */
ushort disp_hres; /* horizontal resolution (pixels) */
short screen_wide; /* screen width */
short screen_high; /* screen height */
ushort disp_psize; /* pixel size */
ulong pixel_mask; /* pixel mask */
ushort palet_gun_depth; /* # of bits per gun */
ulong palet_size; /* number of palette entries */
short palet_inset; /* offset from frame start to data */
ushort num_pages; /* number of display pages */
short num_offscrn_areas; /* number off offscreen work areas */
ulong wksp_addr; /* address of offscreen workspace */
ulong wksp_pitch; /* pitch of offscreen workspace */
} MODEINFO;
/*--------------------------------------------------------------------------*/
/* CONFIG structure definition */
/* */
/* This structure contains the current hardware operating */
/* configuration. */
/*--------------------------------------------------------------------------*/
typedef struct
{
ushort version_number;
ulong comm_buff_size;
ulong sys_flags;
ulong device_rev;
ushort num_modes;
ushort current_mode;
ulong program_mem_start;
ulong program_mem_end;
ulong display_mem_start;
ulong display_mem_end;
ulong stack_size;
ulong shared_mem_size;
HPTR shared_host_addr;
PTR shared_gsp_addr;
MODEINFO mode;
} CONFIG;
/*--------------------------------------------------------------------------*/
/* ENVIRONMENT structure definition */
/* */
/* This structure contains the current values of environment global */
/* variables. */
/*--------------------------------------------------------------------------*/
typedef struct
{
ulong xyorigin; /* xy drawing origin */
ulong pensize; /* pensize height::width */
PTR srcbm; /* source bitmap struct */
PTR dstbm; /* dest bitmap struct */
ulong stylemask; /* styled line patn mask */
} ENVIRONMENT;
/*----------------------------------------------------------------------*/
/* MODULE structure definition */
/* */
/* This structure defines the data associated with a function module. */
/*----------------------------------------------------------------------*/
typedef struct
{
PTR ListAddr;
PTR MallocAddr;
ulong MallocBytes;
ushort NumFuncs;
ushort Dummy;
} MODULE;
/*----------------------------------------------------------------------*/
/* FONT structure definition */
/* */
/* This structure defines the data associated with a font */
/*----------------------------------------------------------------------*/
typedef struct
{
ushort magic; /* font type code */
long length; /* Length of font in bytes */
char facename[32];
short first; /* ASCII code of first character */
short last; /* ASCII code of last character */
short maxwide; /* maximum character width */
short maxkern; /* maximum character kerning amount */
short charwide; /* Width of characters (0 if proportional) */
short avgwide; /* Average width of characters */
short charhigh; /* character height */
short ascent; /* ascent (how far above base line) */
short descent; /* descent (how far below base line) */
short leading; /* leading (row bottom to next row top) */
long rowpitch; /* bits per row of char patterns */
long oPatnTbl; /* Bit offset to PatnTbl (from bof) */
long oLocTbl; /* Bit offset to LocTbl (from bof) */
long oOwTbl; /* Bit offset to OWTbl (from bof) */
} FONT;
/*----------------------------------------------------------------------*/
/* FONTINFO structure definition */
/*----------------------------------------------------------------------*/
typedef struct
{
char facename[32];
short first; /* ASCII code of first character */
short last; /* ASCII code of last character */
short maxwide; /* maximum character width */
short avgwide; /* Average width of characters */
short maxkern; /* Max character kerning amount */
short charwide; /* Width of characters (0=proportional) */
short charhigh; /* character height */
short ascent; /* ascent (how far above base line) */
short descent; /* descent (how far below base line) */
short leading; /* leading (row bottom to next row top) */
PTR fontptr; /* address of font in gsp memory */
short id; /* id of font (set at install time) */
} FONTINFO;